/**
 * 获取小程序二维码接口
 */

//引入Q模块
let Q = require('q');
//引入公共函数
let util = require('../../util');
let https = require('https');

let index = function(getData, postData, config, _redis, db) {
	let deferred = Q.defer();
	if(getData.storeId && getData.tableNum) {
		let accessToken = getData.accessToken || postData.accessToken;

		let requestData = JSON.stringify({
			path: '/pages/login/login?storeId=' + getData.storeId + '&tableNum=' + getData.tableNum,
			width: 500
		});
		let data = '';

		let req = https.request({
			//指定接口地址域名
			hostname: 'api.weixin.qq.com',
			//指定发送到的端口 443代表使用https
			port: 443,
			//指定接口地址的路径部分
			path: '/wxa/getwxacode?access_token=' + accessToken,
			//指定发送的方法为POST
			method: 'POST',
			//设置发送的header
			headers: {
				//指定发送的数据类型为xml
				'Content-Type': 'application/json;charset=utf-8',
				'Content-Length': requestData.length
			}
		}, function(res) {
			//设置编码类型为二进制
			res.setEncoding('binary');

			//监听接收返回数据函数
			res.on('data', function(chunk) {
				//拼接数据块
				data += chunk;
			});

			//监听接收返回数据完成函数
			res.on('end', function() {
				let base64Img = new Buffer(data, 'binary').toString('base64');
				deferred.resolve(['file', {
					contentType: 'image/jpeg',
					fileContent: base64Img,
					base64: true
				}]);
			});
		});

		//监听请求失败函数
		req.on('error', function(e) {
			console.log(e);
			deferred.reject('-0136');
		});

		//写入请求的内容
		req.write(requestData);

		//结束请求
		req.end();
	}
	else {
		deferred.reject('-0135');
	}
	return deferred.promise;
}

module.exports = {
	index: index
}